package com.ruoyi.business.domain.wecom;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.ruoyi.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

@Data
@EqualsAndHashCode(callSuper = true)
@TableName("tb_wecom_chat_group_member")
@ApiModel("企微客户群成员信息")
public class TbWecomChatGroupMember extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @ApiModelProperty(value = "客户群id")
    private String chatId;

    @ApiModelProperty(value = "客户群成员id")
    private String userId;

    @ApiModelProperty(value = "成员类型。\n" +
        "1 - 企业成员\n" +
        "2 - 外部联系人")
    private Integer userType;

    @ApiModelProperty(value = " 群成员unionid")
    private String userUnionid;

    @ApiModelProperty(value = "入群时间")
    private Long joinTime;

    @ApiModelProperty(value = "入群方式。\n" +
        "1 - 由群成员邀请入群（直接邀请入群）\n" +
        "2 - 由群成员邀请入群（通过邀请链接入群）\n" +
        "3 - 通过扫描群二维码入群")
    private Integer joinScene;

    @ApiModelProperty(value = "邀请者。目前仅当是由本企业内部成员邀请入群时会返回该值")
    private String invitorUserIds;

    @ApiModelProperty(value = "在群里的昵称")
    private String groupNickname;

    @ApiModelProperty(value = "名字。仅当 need_name = 1 时返回\n" +
        "如果是微信用户，则返回其在微信中设置的名字\n" +
        "如果是企业微信联系人，则返回其设置对外展示的别名或实名")
    private String name;

    @ApiModelProperty(value = "入群场景值")
    private String state;

    @ApiModelProperty(value = "0 在群 1已退群")
    private Integer status;

    @ApiModelProperty(value = "当是成员退群时有值。表示成员的退群方式\n" +
        "0 - 自己退群\n" +
        "1 - 群主/群管理员移出")
    private Integer quitScene;

    @ApiModelProperty(value = "退群时间")
    private Long quitTime;
}
